package dto

type BankCardFields struct {
	Name                  string  `json:"name" binding:"required"`
	StatementDate         string  `json:"statementDate"`
	PaymentDueDate        string  `json:"paymentDueDate"`
	CustomerServiceNumber *string `json:"customerServiceNumber"`
	IsCreditCard          *bool   `json:"isCreditCard" binding:"required"`
	Enabled               *bool   `json:"enabled" binding:"required"`
	Bank                  struct {
		ID string `json:"id"`
	} `json:"bank"`
}

type AddBankCardRequest struct {
	BankCardFields
}

type UpdateBankCardRequest struct {
	ID string `json:"id" binding:"required"`
	BankCardFields
}

type BankCardResponse struct {
	ID                    string  `json:"id"`
	Name                  string  `json:"name"`
	IsCreditCard          bool    `json:"isCreditCard"`
	Enabled               bool    `json:"enabled"`
	StatementDate         *string `json:"statementDate,omitempty"`
	PaymentDueDate        *string `json:"paymentDueDate,omitempty"`
	CustomerServiceNumber *string `json:"customerServiceNumber,omitempty"`
	BankID                *string `json:"bankId,omitempty"`
	BankName              *string `json:"bankName,omitempty"`
	BankLogoUrl           *string `json:"bankLogoUrl,omitempty"`
}

type BankCardInfo struct {
	BankID               *string `json:"bankId,omitempty"`
	BankShortName        *string `json:"bankShortName,omitempty"`
	BankLogoUrl          *string `json:"bankLogoUrl,omitempty"`
	BankCardName         *string `json:"bankCardName,omitempty"`
	BankCardEnabled      *bool   `json:"bankCardEnabled,omitempty"`
	BankCardIsCreditCard *bool   `json:"bankCardIsCreditCard,omitempty"`
}
